# !/usr/bin/env python
# -*- coding: utf-8 -*-
# ------------------------------
'''
task其实是对future的继承
'''

import asyncio

# async def main():
#     # 获取现有的循环事件
#     now_loop = asyncio.get_running_loop()
#     # 创建future对象
#     fu = now_loop.create_future()
#     await fu   # await 后可加future对象 这里一直没有fu来回复，所以一直阻塞
#
# asyncio.run(main())

async def func(fu):
    print('1')
    # 给fu设置返回值
    fu.set_result(1)


async def main():
    # 获取现有的循环事件
    now_loop = asyncio.get_running_loop()
    # 创建future对象
    fu = now_loop.create_future()

    # 创建任务对象
    task1 = now_loop.create_task(func(fu))
    # 等待task1执行结束返回东西
    await task1
    await fu   # 当在完成任务的时候给fu设置一个返回值，这里就会解组塞

asyncio.run(main())
